# 基本数据类型

# int
# 支持任意大小的整数四则运算，并且支持乘方计算
print(1 + 1)
# 加法运算，输出 2
# 在交互模式可以省去 print 函数
print(1 - 1)
# 减法运算，输出 0
print(1 * 2)
# 乘法运算，输出 2
print(2 / 1)
# 除法运算，输出 2.0
print(3 % 2)
# 求余数运算，输出 1
# 如果不能整除，Python 会输出小数，使用 // 符号，可以向下取整
# 舍去0.75 , 输出 3.0
print(12 // 3.2)
# 使用 `**` 符号计算乘方
print(3 ** 4)
# 3 ** 4 = 3 * 3 * 3 * 3 输出 81

# 使用千分位表示数字
# 为了便于阅读Python还支持使用 _ 下划线分割数字
# 100_000_2 与 1000002 等效
print(100_000_2)
print(1000002)
# 科学计数法
# Python 支持使用 E （大小写均可） 符号表示科学计数法
print(1e+4 == 10000)
# 输出 True
print("----------")

# 浮点类型 (float)
# 和整数相同，Python 全面支持浮点数运算
# 混合类型运算数的运算会把整数转换为浮点数，只要运算中有任何一个元素是小数，运算结果都会包含小数点
print(4 * 3.0)
# 输出 12.0
print("----------")

# 字符串类型 (str)
# 字符串是Python的基本类型之一
# 字符串有多种表现形式，包含在单引号中间：'string'，或者包含在双引号之间："string"
# 反斜杠 \ 用于转义
# 示例：
# 用双引号标记的字符串
print("字符串")
# 用单引号标记的字符串
print("字符串")
print("----------")

# Python中的转义符 \
# 一些特殊的符号需要转义才能正常输出
# 在一个双引号标记的字符串中，如果包含双引号，需要用 \ 符转义
print("字\"符串")
# 在字符串中包含 tab 键、换行、响铃符号需要转义
print("打印\n换行符")
print("打印\ttab符号")
print("打印\a响铃符，电脑会发出 '哔' 的响声")
print("----------")

# 字符串连接
# 使用空格分割的多个字符串Python解释器会自动连接
print("a" "b" "c")
# 输出 abc，使用控制连接字符串只能作用于字符串的字面值，不能用于变量或表达式
# 我们也可以用 + 号连接
print("a" + "b" + "c")
print("{} {}" "a" "b")
print("----------")

# 重复字符串
print("=" * 3)
# 会输出三个 =
print("----------")

# 字符串还支持索引操作
str = "ABCD"
# 注：所有编程语言的索引都以0开始
print(str[0])
# 输出 A
print(str[1])
# 输出 B
print(str[3])
# 输出 D
print("----------")

# 空值类型的唯一值是 None
# 我们定一个一个函数
def func():
    """这个函数的文档信息"""
    print("这是一个函数")

print(func.__doc__)
# 打印函数文档信息, 输出 "这个函数的文档信息"，删掉文档信息后，在使用 __doc__ 打印将会输出 None
def func():
    print("这是一个函数")

print(func.__doc__)
print("----------")

# 布尔值类型（bool）
# 布尔值类型有两个值，True 真 和 False 假，当设定满足条件是 得到 True 值，否则将得到 False 值
print(1 == 1)
# 输出 True
print("abc" == "abc")
# 输出 True
print(1 == 2)
# 输出 False
print("----------")

# True、False、None 都术语Python内置常量，即不可修改的值
